package RRHH_Modelo;

import Conexion.Conexion;
import java.sql.SQLException;
import java.sql.ResultSet;
import java.util.ArrayList;
import java.util.List;

import java.util.Date;

public class RHH_SUBSIDIO_CUENTAS {

    private int ID_SUBSIDIO;
    private int ID_CENTRO_COSTO;
    private int ID_CUENTA;
    private Conexion con = null;

    public RHH_SUBSIDIO_CUENTAS(Conexion con) {
        this.con = con;
    }

    public RHH_SUBSIDIO_CUENTAS(int ID_SUBSIDIO, int ID_CENTRO_COSTO, int ID_CUENTA) {
        this.ID_SUBSIDIO = ID_SUBSIDIO;
        this.ID_CENTRO_COSTO = ID_CENTRO_COSTO;
        this.ID_CUENTA = ID_CUENTA;
    }

    public boolean Insertar() throws SQLException {
        String centro = "null";
        if(ID_CENTRO_COSTO!=0)
            centro = ID_CENTRO_COSTO+"";
        String consulta = "insert into BROKER.RHH_SUBSIDIO_CUENTAS (ID_SUBSIDIO, ID_CENTRO_COSTO, ID_CUENTA) VALUES (" + ID_SUBSIDIO + "," + centro + "," + ID_CUENTA + ")";
        con.EjecutarSentencia(consulta);        
        return true;
    }
/*
    public boolean Modificar() throws SQLException {
        String consulta = "update BROKER.RHH_SUBSIDIO_CUENTAS set ID_SUBSIDIO = " + ID_SUBSIDIO + ",ID_CENTRO_COSTO = " + ID_CENTRO_COSTO + ",ID_CUENTA = " + ID_CUENTA + " where ID =  " + getID();
        con.EjecutarSentencia(consulta);
        return true;
    }

    public boolean EliminarXid() throws SQLException {
        String consulta = "delete from BROKER.RHH_SUBSIDIO_CUENTAS where ID= " + getID();
        con.EjecutarSentencia(consulta);
        return true;
    }
*/
    public void modificar(int idsub, int idcuenta,int idcentro) throws SQLException {        
        String consulta = "select * from BROKER.RHH_SUBSIDIO_CUENTAS where ID_SUBSIDIO = " +idsub;
        ResultSet rs = con.EjecutarConsulta(consulta);
        List<RHH_SUBSIDIO_CUENTAS> lista = Cargar(rs);
        String centro ="null";
        if(idcentro!=0)
            centro = idcentro+"";
        if(lista.size()>0)
        {
            consulta = "update BROKER.RHH_SUBSIDIO_CUENTAS set ID_CUENTA="+idcuenta+", ID_CENTRO_COSTO="+centro+" where ID_SUBSIDIO = " +idsub;
            con.EjecutarSentencia(consulta);            
        }
        else
        {
            consulta = "insert into BROKER.RHH_SUBSIDIO_CUENTAS (ID_SUBSIDIO, ID_CENTRO_COSTO, ID_CUENTA) VALUES (" + idsub + "," + centro + "," + idcuenta + ")";
            con.EjecutarSentencia(consulta);            
        }
    }

    public List<RHH_SUBSIDIO_CUENTAS> Todos() throws SQLException {
        String consulta = "select * from BROKER.RHH_SUBSIDIO_CUENTAS";
        ResultSet rs = con.EjecutarConsulta(consulta);
        List<RHH_SUBSIDIO_CUENTAS> lista = Cargar(rs);
        return lista;
    }
    public RHH_SUBSIDIO_CUENTAS Buscar(int idsub) throws SQLException {
        String consulta = "select * from BROKER.RHH_SUBSIDIO_CUENTAS where ID_SUBSIDIO="+idsub;
        ResultSet rs = con.EjecutarConsulta(consulta);
        List<RHH_SUBSIDIO_CUENTAS> lista = Cargar(rs);
        if(lista.size()>0)
            return lista.get(0);
        else
            return null;
    }

    public List<RHH_SUBSIDIO_CUENTAS> Cargar(ResultSet rs) throws SQLException {
        List<RHH_SUBSIDIO_CUENTAS> lista = new ArrayList<RHH_SUBSIDIO_CUENTAS>();
        while (rs.next()) {
            RHH_SUBSIDIO_CUENTAS objeto = new RHH_SUBSIDIO_CUENTAS(con);
            objeto.setID_SUBSIDIO(rs.getInt("ID_SUBSIDIO"));
            objeto.setID_CENTRO_COSTO(rs.getInt("ID_CENTRO_COSTO"));
            objeto.setID_CUENTA(rs.getInt("ID_CUENTA"));
            lista.add(objeto);
        }
        return lista;
    }

    public int getID_SUBSIDIO() {
        return ID_SUBSIDIO;
    }

    public void setID_SUBSIDIO(int ID_SUBSIDIO) {
        this.ID_SUBSIDIO = ID_SUBSIDIO;
    }

    public int getID_CENTRO_COSTO() {
        return ID_CENTRO_COSTO;
    }

    public void setID_CENTRO_COSTO(int ID_CENTRO_COSTO) {
        this.ID_CENTRO_COSTO = ID_CENTRO_COSTO;
    }

    public int getID_CUENTA() {
        return ID_CUENTA;
    }

    public void setID_CUENTA(int ID_CUENTA) {
        this.ID_CUENTA = ID_CUENTA;
    }

    public Conexion getCon() {
        return this.con;
    }

    public void setCon(Conexion con) {
        this.con = con;
    }
}
